package com.hj.javase.encrypt;

import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

/**
 * @Author : hujing
 * @Date: 2025/6/3 16:13
 * URL编码是浏览器发送数据给服务器使用的数据格式,它通常附加在url的参数部分上,例如:https://www.baidu.com/s?wd=%E4%B8%AD%E6%96%87
 * 为什么要进行URL编码呢?
 * 之所以需要URL编码，是因为出于兼容性考虑，很多服务器只识别ASCII字符。但如果URL中包含中文、日文这些非ASCII字符怎么办？不要紧，URL编码有一套规则：
 * 如果字符是A~Z，a~z，0~9以及-、_、.、*，则保持不变；
 * 如果是其他字符，先转换为UTF-8编码，然后对每个字节以%XX表示。
 */
public class UrlEncodeDemo {

    public static void main(String[] args) {
        // 编码
        String encode = URLEncoder.encode("中文", StandardCharsets.UTF_8);
        System.out.println(encode);

        // 解码
        String decode = URLDecoder.decode(encode, StandardCharsets.UTF_8);
        System.out.println(decode);
    }
}
